Skip to content

Latest commit

 

History

1,091 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

W1![U2VjdXJpdHldKGh0dHBzOi8vZ2l0aHViLmNvbS9TbWFydGRldnMxNy9TdWJUcmFja3IvYWN0aW9ucy93b3JrZmxvd3Mvc2VjdXJpdHktc2Nhbi55bWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL1NtYXJ0ZGV2czE3L1N1YlRyYWNrci9hY3Rpb25zL3dvcmtmbG93cy9zZWN1cml0eS1zY2FuLnltbCkKW1shRGVwZW5kYWJvdCBTdGF0dXNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvRGVwZW5kYWJvdC1hY3RpdmUtYnJpZ2h0Z3JlZW4uc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL1NtYXJ0ZGV2czE3L1N1YlRyYWNrci9zZWN1cml0eS9kZXBlbmRhYm90KQoKIyBTdWJUcmFja3IgLSBPbi1DaGFpbiBTdWJzY3JpcHRpb24gTWFuYWdlbWVudCBvbiBTdGVsbGFyCgpTdWJUcmFja3IgaXMgYSBtb2JpbGUgYXBwbGljYXRpb24gZm9yIG1hbmFnaW5nIHJlY3VycmluZyBwYXltZW50cyBhbmQgc3Vic2NyaXB0aW9ucyBwb3dlcmVkIGJ5IFNvcm9iYW4gc21hcnQgY29udHJhY3RzIG9uIHRoZSBTdGVsbGFyIG5ldHdvcmsuIE1lcmNoYW50cyBjcmVhdGUgc3Vic2NyaXB0aW9uIHBsYW5zLCB1c2VycyBhdXRob3JpemUgcmVjdXJyaW5nIFhMTSBvciB0b2tlbiBwYXltZW50cywgYW5kIHNtYXJ0IGNvbnRyYWN0cyBoYW5kbGUgYXV0b21hdGVkIGJpbGxpbmcgY3ljbGVzLgoKIyMgVGhlIFByb2JsZW0KCi0gQXZlcmFnZSBwZXJzb24gbWFuYWdlcyAxMisgc3Vic2NyaXB0aW9ucyB3aXRoIG5vIHVuaWZpZWQgdmlldwotIE5vIG5hdGl2ZSBvbi1jaGFpbiBzb2x1dGlvbiBmb3IgcmVjdXJyaW5nIHBheW1lbnRzIG9uIFN0ZWxsYXIKLSBNaXNzZWQgcGF5bWVudHMgbGVhZCB0byBzZXJ2aWNlIGludGVycnVwdGlvbnMgYW5kIGxhdGUgZmVlcwotIE5vIGVhc3kgd2F5IHRvIHBheSBmb3Igc2VydmljZXMgd2l0aCBjcnlwdG8gb24gYSByZWN1cnJpbmcgYmFzaXMKCiMjIEZlYXR1cmVzCgoqKlN1YnNjcmlwdGlvbiBNYW5hZ2VtZW50KioKCi0gVHJhY2sgYWxsIHN1YnNjcmlwdGlvbnMgKFdlYjIgYW5kIFdlYjMgc2VydmljZXMpIGluIG9uZSBwbGFjZQotIFNtYXJ0IGNhdGVnb3JpemF0aW9uIGJ5IHR5cGUgKHN0cmVhbWluZywgcHJvZHVjdGl2aXR5LCBpbmZyYXN0cnVjdHVyZSwgZXRjLikKLSBRdWljay1hZGQgcHJlc2V0cyBmb3IgcG9wdWxhciBzZXJ2aWNlcyBvciBtYW51YWwgZW50cnkKLSBCdWxrIGFjdGlvbnM6IHBhdXNlLCBjYW5jZWwsIG9yIG1vZGlmeSBtdWx0aXBsZSBzdWJzY3JpcHRpb25zCi0gQnVsayBzdWJzY3JpcHRpb24gaW1wb3J0IGZyb20gQ1NWIG9yIEpTT04gd2l0aCBkdXBsaWNhdGUgZGV0ZWN0aW9uIGFuZCBwZXItcm93IGVycm9yIHJlcG9ydGluZwoKKipPbi1DaGFpbiBSZWN1cnJpbmcgUGF5bWVudHMqKgoKLSBBdXRob3JpemUgcmVjdXJyaW5nIFhMTSBhbmQgU3RlbGxhciB0b2tlbiBwYXltZW50cyB2aWEgU29yb2JhbiBjb250cmFjdHMKLSBBdXRvbWF0aWMgYmlsbGluZyBjeWNsZSBleGVjdXRpb24gd2l0aCBjb25maWd1cmFibGUgaW50ZXJ2YWxzCi0gTXVsdGktdG9rZW4gc3VwcG9ydCAoWExNLCBVU0RDIG9uIFN0ZWxsYXIsIGN1c3RvbSBTdGVsbGFyIGFzc2V0cykKLSBUcmFuc3BhcmVudCBvbi1jaGFpbiBwYXltZW50IGhpc3RvcnkKCioqU2hvcGlmeSBTdWJzY3JpcHRpb24gQmlsbGluZyoqCgotIENoYXJnZSBzdWJzY3JpcHRpb25zIHRoYXQgYXJlIGJpbGxlZCB0aHJvdWdoIFNob3BpZnkgZnJvbSB0aGUgc2FtZSBwYXltZW50IHJvdXRlciBhcyBTdHJpcGUsIENpcmNsZSBhbmQgU3RlbGxhcgotIEJpbGxpbmcgYXR0ZW1wdHMgY2FycnkgYW4gaWRlbXBvdGVuY3kga2V5LCBzbyBhIHJldHJpZWQgY2hhcmdlIGNhbm5vdCBiaWxsIGEgc3Vic2NyaWJlciB0d2ljZQotIFJlZnVuZHMgYWdhaW5zdCB0aGUgU2hvcGlmeSBvcmRlciBiZWhpbmQgdGhlIGNoYXJnZSwgd2l0aCBubyBibGluZCByZXRyaWVzCi0gUmVnaXN0ZXJlZCBhdXRvbWF0aWNhbGx5IHdoZW4gYFdIT1BJRllfU0hPUF9ET01BSU5gIGFuZCBgU0hPUElGWV9BRE1JTl9BQ0NFU1NfVE9LRU5gIGFyZSBzZXQKCioqU21hcnQgTm90aWZpY2F0aW9ucyoqCgotIEJpbGxpbmcgcmVtaW5kZXJzIHdpdGggYWR2YW5jZSB3YXJuaW5ncyBiZWZvcmUgY2hhcmdlcwotIFByaWNlIGNoYW5nZSBhbGVydHMgYW5kIHNwZW5kaW5nIGluc2lnaHRzCi0gQUktcG93ZXJlZCBzYXZpbmdzIHN1Z2dlc3Rpb25zCgoqKkludm9pY2UgTWFuYWdlbWVudCB3aXRoIEJyYW5kaW5nKioKCi0gQ3VzdG9tIGludm9pY2UgYnJhbmRpbmcgd2l0aCBjb21wYW55IGxvZ28gYW5kIGNvbG9ycwotIE11bHRpcGxlIGludm9pY2UgdGVtcGxhdGVzIChNb2Rlcm4sIENsYXNzaWMsIE1pbmltYWwsIFByb2Zlc3Npb25hbCkKLSBQREYgZ2VuZXJhdGlvbiB3aXRoIGZ1bGwgYnJhbmRpbmcgY3VzdG9taXphdGlvbgotIENvbXByZWhlbnNpdmUgaW52b2ljZSBhbmFseXRpY3MgYW5kIHJldmVudWUgdHJhY2tpbmcKLSBJbnZvaWNlIHByZXZpZXcgYmVmb3JlIGdlbmVyYXRpb24KLSBEZXRhaWxlZCBwYXltZW50IGhpc3RvcnkgYW5kIHN0YXR1cyB0cmFja2luZwoKKipGcmF1ZCBEZXRlY3Rpb24gd2l0aCBSZWFsLXRpbWUgTW9uaXRvcmluZyoqCgotIFJlYWwtdGltZSBmcmF1ZCBkZXRlY3Rpb24gd2l0aCBtdWx0aXBsZSBkZXRlY3Rpb24gbWV0aG9kcwotIFJpc2sgc2NvcmluZyBzeXN0ZW0gKDA tMTAwKSB3aXRoIGF1dG9tYXRpYyBibG9ja2luZwotIDEwKyBmcmF1ZCBpbmRpY2F0b3JzICh2ZWxvY2l0eSwgYW1vdW50IGFub21hbHksIGxvY2F0aW9uIG1pc21hdGNoLCBldGMuKQotIFJlYWwtdGltZSBhbGVydHMgZm9yIGhpZ2gtcmlzayB0cmFuc2FjdGlvbnMKLSBGcmF1ZCBpbnZlc3RpZ2F0aW9uIHdvcmtmbG93Ci0gQ29tcHJlaGVuc2l2ZSBmcmF1ZCBhbmFseXRpY3MgYW5kIHJlcG9ydGluZwotIFByZXZlbnRlZCBsb3NzIHRyYWNraW5nIGFuZCBmYWxzZSBwb3NpdGl2ZSBtb25pdG9yaW5nCgoqKlNMQSBNb25pdG9yaW5nIHdpdGggQnJlYWNoIEFsZXJ0cyoqCgotIFNMQSBkZWZpbml0aW9uIHBlciB0aWVyIChCYXNpYywgU3RhbmRhcmQsIFByZW1pdW0sIEVudGVycHJpc2UpCi0gUmVhbC10aW1lIFNMQSB0cmFja2luZyB3aXRoIGNvbXBsaWFuY2UgbW9uaXRvcmluZwotIEF1dG9tYXRpYyBicmVhY2ggZGV0ZWN0aW9uIGFuZCBhbGVydGluZwotIFNMQSBjcmVkaXRzIGlzc3VhbmNlIGZvciBicmVhY2hlcwotIENvbXByZWhlbnNpdmUgU0xBIGFuYWx5dGljcyBhbmQgcmVwb3J0aW5nCi0gTVRUUiB0cmFja2luZyBhbmQgdHJlbmQgYW5hbHlzaXMKLSBNdWx0aS1tZXRyaWMgc3VwcG9ydCAodXB0aW1lLCByZXNwb25zZSB0aW1lLCBlcnJvciByYXRlLCBldGMuKQoKKipXYWxsZXQgSW50ZWdyYXRpb24qKgoKLSBOYXRpdmUgRnJlaWdodGVyIHdhbGxldCBjb25uZWN0aW9uIGZvciBTdGVsbGFyIHRyYW5zYWN0aW9ucwotIFNvY2lhbCBsb2dpbiBzdXBwb3J0IHZpYSBXZWIzQXV0aAotIFJlYWwtdGltZSBiYWxhbmNlIGFuZCB0cmFuc2FjdGlvbiBtb25pdG9yaW5nCgojIyBBcmNoaXRlY3R1cmUKCmBgYApTdWJUcmFja3IvCuKUnOKUgOKUgCBzcmMvICAgICAgICAgICAgICAgICMgUmVhY3QgTmF0aXZlIG1vYmlsZSBhcHAgKEV4cG8pCuKUgiAgIOKUnOKUgOKUgCBzY3JlZW5zLyAgICAgICAgIyBBcHAgc2NyZWVucwrilCCgICDilJzilIDilIAgY29tcG9uZW50cy8gICAgICMgUmV1c2FibGUgVUkgY29tcG9uZW50cwrilIIgICDilJzilIDilIAgc2VydmljZXMvICAgICAgICMgV2FsbGV0IGFuZCBBUEkgc2VydmljZXMKCiAgIOKUnOKUgOKUgCBob29rcy8gICAgICAgICAgIyBDdXN0b20gUmVhY3QgaG9va3MKCiAgIOKUnOKUgOKUgCBpMThuLyAgICAgICAgICAgIyBMb2NhbGl6YXRpb24gKGluY2wuIFJUTCBsYW5ndWFnZXMpCgogICDilJTilIDilIAgbmF2aWdhdGlvbi8gICAgICMgUmVhY3QgTmF2aWdhdGlvbiBzZXR1cArilJzilIDilIAgYXBwLyAgICAgICAgICAgICAgICAjIFp1c3RhbmQgc3RvcmVzIGFuZCBhcHAtbGV2ZWwgc2VydmljZXMK4pSc4pSA4pSAIGJhY2tlbmQvICAgICAgICAgICAgIyBOb2RlLmpzIEFQSSwgYmlsbGluZywgZnJhdWQsIFNMQSwgZ2F0ZXdheSBhZGFwdGVycwrilJzilIDilIAgY29udHJhY3RzLyAgICAgICAgICAjIFNvcm9iYW4gc21hcnQgY29udHJhY3RzIChSdXN0IHdvcmtzcGFjZSkK4pSc4pSA4pSAIHNlcnZpY2VzLyAgICAgICAgICAgIyBTdGFuZGFsb25lIHNlcnZpY2VzIChub3RpZmljYXRpb25zLCBmZWF0dXJlIHBpcGVsaW5lKQrilJzilIDilIAgbWwtc2VydmljZS8gICAgICAgICAjIFB5dGhvbiBNTCBzZXJ2aWNlIChmb3JlY2FzdGluZywgc2F2aW5ncyBzdWdnZXN0aW9ucykK4pSc4pSA4pSAIHNka3MvICAgICAgICAgICAgICAgIyBDbGllbnQgU0RLcyAoSmF2YVNjcmlwdCwgUHl0aG9uLCBHbykK4pSc4pSA4pSAIGRldmVsb3Blci1wb3J0YWwvICAgIyBEZXZlbG9wZXIgcG9ydGFsIGFuZCBBUEkgZG9jcwrilJzilIDilIAgYmluLyAgICAgICAgICAgICAgICAjIGBzdWJ0cmFja3JgIENMSQrilJzilIDilIAgaW5mcmEvICAgICAgICAgICAgICAjIFRlcnJhZm9ybSwgb2JzZXJ2YWJpbGl0eSwgUGdCb3VuY2VyLCBDRE4gY29uZmlnCuKUgiAgIOKUnOKUgOKUgCBlMmUvICAgICAgICAgICAgICAgICMgRGV0b3ggZW5kLXRvLWVuZCB0ZXN0cwrilIIgICDilJzilIDilIAgbG9hZC10ZXN0cy8gICAgICAgICAjIGs2IGxvYWQgdGVzdHMKCiAgIOKUnOKUgOKUgCBzY3JpcHRzLyAgICAgICAgICAgIyBTZXR1cCwgZGVwbG95LCBtaWdyYXRpb24sIGFuZCBEUiBzY3JpcHRzCgogICDilJTilIDilIAgZG9jcy8gICAgICAgICAgICAgICMgRmVhdHVyZSBhbmQgb3BlcmF0aW9ucyBkb2N1bWVudGF0aW9uCmBgYAoKIyMgVGVjaCBTdGFjawoKfCBMYXllciAgICAgICAgICAgfCBUZWNobm9sb2d5ICAgICAgICAgICAgICAgICAgICAgfAp8IC0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IE1vYmlsZSBBcHAgICAgICB8IFJlYWN0IE5hdGl2ZSwgRXhwbywgVHlwZVNjcmlwdCB8CnwgU3RhdGUgICAgICAgICAgIHwgWnVzdGFuZCAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBXYWxsZXQgICAgICAgICAgfCBGcmVpZ2h0ZXIgV2FsbGV0LCBTdGVsbGFyIFNESyAgfAp8IEF1dGggICAgICAgICAgICB8IFdlYjNBdXRoIChzb2NpYWwgbG9naW4pICAgICAgICAgfAp8IFNtYXJ0IENvbnRyYWN0cyB8IFNvcm9iYW4gKFJ1c3QpIG9uIFN0ZWxsYXIgICAgICB8CnwgUGF5bWVudHMgICAgICAgIHwgWExNLCBTdGVsbGFyIHRva2VucywgU3RyaXBlLCBDaXJjbGUsIFNob3BpZnkgfAp8IEJhY2tlbmQgICAgICAgICB8IE5vZGUuanMsIFBvc3RncmVTUUwsIFJlZGlzICAgICB8CnwgTUwgU2VydmljZSAgICAgICB8IFB5dGhvbiAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgVGVzdGluZyAgICAgICAgIHwgSmVzdCwgRGV0b3gsIFN0cnlrZXIsIGs2ICAgICAgIHwKCiMjIEdldHRpbmcgU3RhcnRlZAoKIyMjIDEuIENsb25lIHRoZSBSZXBvc2l0b3J5CgpGaXJzdCwgY2xvbmUgdGhlIHJlcG9zaXRvcnkgdG8geW91ciBsb2NhbCBtYWNoaW5lOgoKYGBgYmFzaApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL1NtYXJ0ZGV2czE3L1N1YlRyYWNrci5naXQKY2QgU3ViVHJhY2tyCmBgYAoKIyMjIDIuIEluc3RhbGwgUHJlcmVxdWlzaXRlcwoKIyMjIyBSZXF1aXJlZCBmb3IgYWxsIGRldmVsb3BtZW50OgoKLSBOKipOb2RlLmpzIDIwKyoqOiBXZSByZWNvbW1lbmQgdXNpbmcgW252bV0oaHR0cHM6Ly9naXRodWIuY29tL252bS1zaC9udm0pIHRvIG1hbmFnZSBOb2RlLmpzIHZlcnNpb25zOgoKICBgYGBiYXNoCiAgIyBJbnN0YWxsIG52bSAoaWYgbm90IGFscmVhZHkgaW5zdGFsbGVkKQogIGN1cmwgLW8tIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9udm0tc2gvbnZtL3YwLjM5LjcvaW5zdGFsbC5zaCB8IGJhc2gKCiAgIyBJbnN0YWxsIGFuZCB1c2UgTm9kZS5qcyAyMAogIG52bSBpbnN0YWxsIDIwCiAgbnZtIHVzZSAyMAogIGBgYAoKLSBOKipFeHBvIENMSSoqOiBJbnN0YWxsIHRoZSBFeHBvIGNvbW1hbmQgbGluZSB0b29scyBnbG9iYWxseToKICBgYGBiYXNoCiAgbnBtIGluc3RhbGwgLWcgZXhwby1jbGkKICBgYGAKLSBOKipGcmVpZ2h0ZXIgV2FsbGV0Kio6IEluc3RhbGwgdGhlIFtGcmVpZ2h0ZXIgV2FsbGV0XShodHRwczovL2ZyZWlnaHRlci5hcHAvKSBicm93c2VyIGV4dGVuc2lvbiBmb3IgU3RlbGxhciB0cmFuc2FjdGlvbiBzaWduaW5nLgoKIyMjIyBSZXF1aXJlZCBvbmx5IGZvciBzbWFydCBjb250cmFjdCBkZXZlbG9wbWVudDoKCi0gTioqUnVzdCoqOiBJbnN0YWxsIFJ1c3QgYW5kIHRoZSBXQVNNIHRhcmdldDoKCiAgYGBgYmFzaAogICMgSW5zdGFsbCBSdXN0IChpZiBub3QgYWxyZWFkeSBpbnN0YWxsZWQpCiAgY3VybCAtLXByb3RvICc9aHR0cHMnIC0tdGxzdjEuMiAtc1NmIGh0dHBzOi8vc2gucnVzdHVwLnJzIHwgc2gKCiAgIyBBZGQgV0FTTSB0YXJnZXQKICBydXN0dXAgdGFyZ2V0IGFkZCB3YXNtMzItdW5rbm93bi11bmtub3duCiAgYGBgCgotIE4qKlNvcm9iYW4gQ0xJKio6IEluc3RhbGwgdGhlIFNvcm9iYW4gY29tbWFuZCBsaW5lIHRvb2xzOgogIGBgYGJhc2gKICBjYXJnbyBpbnN0YWxsIC0tbG9ja2VkIHNvcm9iYW4tY2xpCiAgYGBgCgojIyMgMy4gQ29uZmlndXJlIEVudmlyb25tZW50IFZhcmlhYmxlcwoKQ3JlYXRlIGEgYC5lbnZgIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoZSBwcm9qZWN0OgoKYGBgYmFzaApjcCAuZW52LmV4YW1wbGUgLmVudgpgYGAKPiAqKk5vdGUqKjogSWYgYC5lbnYuZXhhbXBsZWAgZG9lc24ndCBleGlzdCwgY3JlYXRlIGEgbmV3IGAuZW52YCBmaWxlIHdpdGggdGhlIGZvbGxvd2luZyB2YXJpYWJsZXM6Cgp8IFZhcmlhYmxlICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRXhhbXBsZSBWYWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IGBTVEVMTEFSX05FVFdPUktgICAgfCBgdGVzdG5ldGAgb3IgYHB1YmxpY2AgU3RlbGxhciBuZXR3b3JrICAgICAgICAgfCBgdGVzdG5ldGAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBDT05UUkFDVF9JRGAgICAgICAgfCBEZXBsb3llZCBTdWJUcmFja3IgcHJveHkgY29udHJhY3QgSUQgKHN0YWJsZSkgfCBgQ0I2NC4uLmAgKHlvdXIgZGVwbG95ZWQgcHJveHkgY29udHJhY3QgYWRkcmVzcykgICAgICAgICAgICAgICAgICB8CnwgYFdFQjNBVVRIX0NMSUVOVF9JRGAgfCBXZWIzQXV0aCBjbGllbnQgSUQgZm9yIHNvY2lhbCBsb2dpbiAgICAgICAgICAgfCBHZXQgb25lIGZyb20gW1dlYjNBdXRoIERhc2hib2FyZF0oaHR0cHM6Ly9kYXNoYm9hcmQud2ViM2F1dGguaW8vKSB8CnwgYFNIT1BJRllfU0hPUF9ET01BSU5gIHwgU2hvcGlmeSBzaG9wIGRvbWFpbiBmb3Igc3Vic2NyaXB0aW9uIGJpbGxpbmcgKG9wdGlvbmFsKSB8IGB5b3VyLXNob3AubXlzaG9waWZ5LmNvbWAgfAp8IGBTSE9QSUZZX0FETUlOX0FDQ0VTU19UT0tFTmAgfCBBZG1pbiBBUEkgdG9rZW4gb2YgdGhlIFNob3BpZnkgY3VzdG9tIGFwcCAob3B0aW9uYWwpIHwgYHNocGF0Xy4uLmAgfAoKIyMjIDQuIFJ1biB0aGUgTW9iaWxlIEFwcAoKSW5zdGFsbCBkZXBlbmRlbmNpZXMgYW5kIHN0YXJ0IHRoZSBFeHBvIGRldmVsb3BtZW50IHNlcnZlcjoKCmBgYGJhc2gKIyBJbnN0YWxsIGRlcGVuZGVuY2llcwpucG0gaW5zdGFsbAoKIyBTdGFydCBFeHBvIGRldiBzZXJ2ZXIKbnB4IGV4cG8gc3RhcnQKYGBgCgpZb3UgY2FuIHRoZW4gcnVuIHRoZSBhcHAgb246CgotIE4qKmlPUyBTaW11bGF0b3IqKjogUHJlc3MgYGlgIGluIHRoZSBFeHBvIHRlcm1pbmFsCi0gTioqQW5kcm9pZCBFbXVsYXRvcioqOiBQcmVzcyBgYWAgaW4gdGhlIEV4cG8gdGVybWluYWwKLSBOKipQaHlzaWNhbCBEZXZpY2UqKjogU2NhbiB0aGUgUVIgY29kZSB3aXRoIHRoZSBFeHBvIEdvIGFwcCAoaU9TL0FuZHJvaWQpCgojIyMgNS4gKE9wdGlvbmFsKSBEZXBsb3kgU21hcnQgQ29udHJhY3RzCgpJZiB5b3Ugd2FudCB0byB3b3JrIG9uIHRoZSBzbWFydCBjb250cmFjdHM6CgpgYGBiYXNoCiMgTG9jYWwgKHJlcXVpcmVzIGxvY2FsIFNvcm9iYW4gbmV0d29yayArIGBhbGljZWAKIGlkZW50aXR5KQouL3NjcmlwdHMvZGVwbG95LWxvY2FsLnNoCgojIFRlc3RuZXQKZXhwb3J0IFNPUk9CQU5fQUNDT1VOVD0ieW91ci10ZXN0bmV0LWlkZW50aXR5IgpleHBvcnQgQURNSU5fQUREUkVTUz0iR0IuLi4iCi4vc2NyaXB0cy9kZXBsb3ktdGVzdG5ldC5zaApgYGAKClN1YlRyYWNrciB1c2VzIGFuIHVwZ3JhZGVhYmxlIGFyY2hpdGVjdHVyZSAocHJveHkgKyBzdG9yYWdlICsgaW1wbGVtZW50YXRpb24pLiBVc2UgdGhlIGRlcGxveWVkIGBQUk9YWV9JRGAgKHNhdmVkIHRvIGBjb250cmFjdHMvLmVudi48bmV0d29yaz5gKSBhcyB0aGUgc3RhYmxlIGNvbnRyYWN0IElELgoKIyMjIDYuIFJ1biBUZXN0cwoKUnVuIHRoZSB0ZXN0IHN1aXRlIHRvIGVuc3VyZSBldmVyeXRoaW5nIGlzIHdvcmtpbmcgY29ycmVjdGx5OgoKYGBgYmFzaApucG0gdGVzdCAgICAgICAgICAgICAgICAgICAgIyBGcm9udGVuZCB1bml0IHRlc3RzIChKZXN0KQpucG0gcnVuIHRlc3Q6YmFja2VuZCAgICAgICAgIyBCYWNrZW5kIHRlc3RzCm5wbSBydW4gdGVzdDpjb3ZlcmFnZSAgICAgICAjIFRlc3RzIHdpdGggY292ZXJhZ2UKbnBtIHJ1biBjb250cmFjdHM6dGVzdCAgICAgICMgU29yb2JhbiBjb250cmFjdCB0ZXN0cyAoY2FyZ28pCgptcG0gcnVuIGxpbnQgICAgICAgICAgICAgICAgIyB FU0xpbnQKbnBtIHJ1biB0eXBlY2hlY2sgICAgICAgICAgICMgVHlwZVNjcmlwdCB0eXBlIGNoZWNraW5nCm5wbSBydW4gZm9ybWF0OmNoZWNrICAgICAgICMgUHJldHRpZXIKCm5wbSBydW4gbXV0YXRpb246dGVzdDphbGwgICAjIFN0cnlrZXIgbXV0YXRpb24gdGVzdGluZyAoPj0gODAlIG9uIGNyaXRpY2FsIHBhdGhzKQpucG0gcnVuIHBlcmZvcm1hbmNlOmNpICAgICAgIyBQZXJmb3JtYW5jZSBidWRnZXQgY2hlY2sKbnBtIHJ1biBjaSAgICAgICAgICAgICAgICAgICMgRnVsbCBDSSBwaXBlbGluZSBsb2NhbGx5CmBgYAoKRW5kLXRvLWVuZCB0ZXN0cyB1c2UgRGV0b3ggKGBucG0gcnVuIGUyZTpidWlsZC1pb3MgJiYgbnBtIHJ1biBlMmU6dGVzdC1pb3NgLCBvciB0aGUgYGFuZHJvaWRgIGVxdWl2YWxlbnRzKSwgYW5kIGxvYWQgdGVzdHMgdXNlIGs2IChgbnBtIHJ1biBsb2FkOnRlc3RgKS4KCkRLIHRlc3RzOiBgbnBtIHJ1biBzZGs6dGVzdDpqc2AsIGBucG0gcnVuIHNkazp0ZXN0OnB5dGhvbmAsIGBucG0gcnVuIHNkazp0ZXN0OmdvYC4KCiMjIyBUcm91Ymxlc2hvb3RpbmcKCjxkZXRhaWxzPgo8c3VtbWFyeT5FeHBvIHNlcnZlciB3b24ndCBzdGFydDwvc3VtbWFyeT4KLSBFbnN1cmUgbm8gb3RoZXIgcHJvY2VzcyBpcyB1c2luZyBwb3J0IDgwODE6IGBsb3NvZiAtaSA6ODA4MSB8IGtpbGwgLTkgPFBJRD5gCi0gQ2xlYXIgRXhwbyBjYWNoZTogYG54cCBleHBvIHN0YXJ0IC0tY2xlYXJgCjwvZGV0YWlscz4KCjxkZXRhaWxzPgo8c3VtbWFyeT5TbWFydCBjb250cmFjdCBidWlsZCBmYWlsczwvc3VtbWFyeT4KLSBFbnN1cmUgeW91IGhhdmUgdGhlIFdBU00gdGFyZ2V0IGluc3RhbGxlZDogYHJ1c3R1cCB0YXJnZXQgYWRkIHdhc20zMi11bmtub3duLXVua25vd25gCi0gVXBkYXRlIFNvcm9iYW4gQ0xJIHRvIHRoZSBsYXRlc3QgdmVyc2lvbjogYGNhcmdvIGluc3RhbGwgLS1sb2NrZWQgc29yb2Jhbi1jbGkgLS1mb3JjZWAKPC9kZXRhaWxzPgoKPGRldGFpbHM+CjxzdW1tYXJ5PldhbGxldCBjb25uZWN0aW9uIGlzc3Vlczwvc3VtbWFyeT4KLSBFbnN1cmUgRnJlaWdodGVyIFdhbGxldCBpcyBpbnN0YWxsZWQgYW5kIHVubG9ja2VkCi0gTWFrZSBzdXJlIHlvdSdyZSBjb25uZWN0ZWQgdG8gdGhlIHNhbWUgU3RlbGxhciBuZXR3b3JrIGFzIHRoZSBhcHAgKHRlc3RuZXQvcHVibGljKQo8L2RldGFpbHM+CgojIyBMb2NhbCBEZXZlbG9wbWVudCBFbnZpcm9ubWVudAoKU3ViVHJhY2tyIHV0aWxpemVzIGEgZnVsbHkgY29udGFpbmVyaXplZCBsb2NhbCBlbnZpcm9ubWVudCBvcmNoZXN0cmF0ZWQgdmlhIERvY2tlciBDb21wb3NlLCBlbGltaW5hdGluZyB0aGUgbmVlZCB0byBtYW51YWxseSBpbnN0YWxsIGRlcGVuZGVuY2llcyBsaWtlIFBvc3RncmVTUUwsIFJlZGlzLCBTb3JvYmFuIENMSSwgUnVzdCwgYW5kIE5vZGUuanMuCgojIyMgU2VydmljZXMKCnwgU2VydmljZSAgICAgICAgICAgICAgICAgfCBEZWZhdWx0IHBvcnQgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgIHwKfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKfCBgYmFja2VuZGAgICAgICAgICAgICAgICB8IDMwMDAgICAgICAgICB8IEFQSSBnYXRld2F5ICAgICAgICAgICAgICAgICAgICAgfAp8IGB3b3JrZXJzYCAgICAgICAgICAgICAgIHwg4oCUICAgICAgICAgICAgfCBCYWNrZ3JvdW5kIGJpbGxpbmcgcXVldWVzICAgICAgICAgICB8CnwgYHdlYmhvb2stZGlzcGF0Y2hlcmAgICAgIHwg4oCUICAgICAgICAgICAgfCBXZWJob29rIHBheWxvYWQgZGVsaXZlcnkgICAgICAgICAgICB8CnwgYG1sLXNlcnZpY2VgICAgICAgICAgICAgfCA4MDAxICAgICAgICAgfCBQeXRob24gTUwgc2VydmljZSAgICAgICAgICAgICAgICAgICB8CnwgYGZlYXR1cmUtcGlwZWxpbmVgICAgICAgfCA4MDEwICAgICAgICAgfCBGZWF0dXJlIHBpcGVsaW5lIGZvciBNTCBtb2RlbHMgICAgICB8CnwgYHBvc3RncmVzYCAgICAgICAgICAgICAgfCA1NDMyICAgICAgICAgfCBQb3N0Z3JlU1FMIGRhdGFiYXNlICAgICAgICAgICAgICAgICB8CnwgYHJlZGlzYCAgICAgICAgICAgICAgICAgfCA2Mzc5ICAgICAgICAgfCBDYWNoZSBhbmQgcXVldWVzICAgICAgICAgICAgICAgICAgICB8CnwgYHN0ZWxsYXItc3RhbmRhbG9uZWAgICAgIHwgODAwMCAgICAgICAgIHwgU3RhbmRhbG9uZSBsb2NhbCBTb3JvYmFuIG5ldHdvcmsgfAp8IGBtb2JpbGVgICAgICAgICAgICAgICAgICB8IDgwODEgICAgICAgICB8IEV4cG8gZGV2IHNlcnZlciAgICAgICAgICAgICAgICAgICAgIHwKClBvcnRzIGNhbiBiZSBvdmVycmlkZGVuIHdpdGggdGhlIGBDT01QT1NFX1BPUlRfKmAgdmFyaWFibGVzIGluIGAuZW52LmV4YW1wbGVgLgoKIyMjIFF1aWNrIFNldHVwCgpgYGBiYXNoCi4vc2NyaXB0cy9zZXR1cC5zaCAgICAgICAgICAgICMgQnVpbGQsIHN0YXJ0LCBhbmQgc2VlZCB0aGUgZnVsbCBzdGFjawouL3NjcmlwdHMvc2V0dXAuc2ggLS1uby1zZWVkICAjIFNraXAgZGF0YWJhc2Ugc2VlZGluZwouL3NjcmlwdHMvc2V0dXAuc2ggLS1wdWxsICAgICAjIEZvcmNlLXB1bGwgYmFzZSBpbWFnZXMgYmVmb3JlIGJ1aWxkaW5nCmBgYAoKVGhlIHNjcmlwdCBjcmVhdGVzIGAuZW52YCBmcm9tIGAuZW52LmV4YW1wbGVgIGlmIG1pc3NpbmcsIHN0YXJ0cyBhbGwgc2VydmljZXMsIHdhaXRzIGZvciBQb3N0Z3JlU1FMIGFuZCBSZWRpcyB0byBiZSBoZWFsdGh5LCBhbmQgc2VlZHMgdGhlIGRhdGFiYXNlLgoKVXNlZnVsIGZvbGxvdy11cHM6CgpgYGBiYXNoCmRvY2tlciBjb21wb3NlIHBzICAgICAgICAgICAgICMgU2VydmljZSBzdGF0dXMKZG9ja2VyIGNvbXBvc2UgbG9ncyAtZiBiYWNrZW5kCmRvY2tlciBjb21wb3NlIGRvd24gICAgICAgICAgICMgU3RvcCB0aGUgc3RhY2sgKGFkZCAtdiB0byB3aXBlIHZvbHVtZXMpCmBgYAoKIyMgQnVsayBTdWJzY3JpcHRpb24gSW1wb3J0CgpBZG1pbnMgY2FuIGltcG9ydCBleGlzdGluZyBzdWJzY3JpcHRpb25zIGluIGJ1bGsgZnJvbSBhIENTViBvciBKU09OIGZpbGUsIHdpdGggZHVwbGljYXRlIGRldGVjdGlvbiBhbmQgcGVyLXJvdyBlcnJvciByZXBvcnRpbmcuCgojIyMgQ0xJCgpgYGBiYXNoCiMgSW1wb3J0IGZyb20gYSBDU1YgZmlsZQpucG0gcnVuIGNsaSAtLSBzdWJzIGltcG9ydCAtLWZpbGUgc3Vic2NyaXB0aW9ucy5jc3YgLS1mb3JtYXQgY3N2CgojIEltcG9ydCBmcm9tIGEgSlNPTiBmaWxlCm5wbSBydW4gY2xpIC0tIHN1YnMgaW1wb3J0IC0tZmlsZSBzdWJzY3JpcHRpb25zLmpzb24gLS1mb3JtYXQganNvbgoKIyBQcmV2aWV3IHdpdGhvdXQgd3JpdGluZyAoZHJ5IHJ1bikKbnBtIHJ1biBjbGkgLS0gc3VicyBpbXBvcnQgLS1maWxlIHN1YnNjcmlwdGlvbnMuY3N2IC0tZm9ybWF0IGNzdiAtLWRyeS1ydW4KCiMgU2tpcCByb3dzIHRoYXQgZHVwbGljYXRlIGV4aXN0aW5nIHN1YnNjcmlwdGlvbnMKbnBtIHJ1biBjbGkgLS0gc3VicyBpbXBvcnQgLS1maWxlIHN1YnNjcmlwdGlvbnMuY3N2IC0tZm9ybWF0IGNzdiAtLXNraXAtZHVwbGljYXRlcwoKIyBFbWl0IGEgbWFjaGluZS1yZWFkYWJsZSByZXBvcnQKbnBtIHJ1biBjbGkgLS0gc3VicyBpbXBvcnQgLS1maWxlIHN1YnNjcmlwdGlvbnMuY3N2IC0tZm9ybWF0IGNzdiAtLXJlcG9ydCBpbXBvcnQtcmVwb3J0Lmpzb24KYGBgCgojIyMgQVBJCgpUaGUgYnVsayBpbXBvcnQgaXMgYWxzbyBhdmFpbGFibGUgb3ZlciBIVFRQIGZvciB0aGUgYWRtaW4gZGFzaGJvYXJkOgoKYGBgaHR0cApQT1NUIC9hcGkvc3Vic2NyaXB0aW9ucy9idWxrLWltcG9ydApDb250ZW50LVR5cGU6IG11bHRpcGFydC9mb3JtLWRhdGEKCmZpbGU9QHN1YnNjcmlwdGlvbnMuY3N2CmZvcm1hdD1jc3YKZHJ5UnVuPWZhbHNlCnNraXBEdXBsaWNhdGVzPXRydWUKYGBgCgpUaGUgcmVzcG9uc2UgaW5jbHVkZXMgYSBzdW1tYXJ5IGFuZCBhIHBlci1yb3cgYnJlYWtkb3duOgoKYGBganNvbgp7CiAgInN1bW1hcnkiOiB7CiAgICAidG90YWwiOiAxMDAsCiAgICAiaW1wb3J0ZWQiOiA5MiwKICAgICJza2lwcGVkIjogNSwKICAgICJmYWlsZWQiOiAzLAogICAgImR1cGxpY2F0ZXMiOiA1CiAgfSwKICAicm93cyI6IFsKICAgIHsgInJvdyI6IDcsICJzdGF0dXMiOiAiZmFpbGVkIiwgImVycm9ycyI6IFsiYW1vdW50IG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIiXSB9LAogICAgeyAicm93IjogMTIsICJzdGF0dXMiOiAic2tpcHBlZCIsICJlcnJvcnMiOiBbImR1cGxpY2F0ZSBvZiBleGlzdGluZyBzdWJzY3JpcHRpb24iXSB9CiAgXQp9CmBgYAoKIyMjIEZvcm1hdAoKIyMjIyBDU1YKCmBgYGNzdgpuYW1lLGFtb3VudCxjdXJyZW5jeSxiaWxsaW5nQ3ljbGUsbmV4dEJpbGxpbmdEYXRlLGNhdGVnb3J5LHByb3ZpZGVyLGV4dGVybmFsSWQKQWRvYmUgQ3JlYXRpdmUgQ2xvdWQsNTkuOTksVVNELG1vbnRobHksMjAyNC0wNy0wMSxwcm9kdWN0aXZpdHksQWRvYmUsYWRvYmUtY2MtMTIzCk5ldGZsaXgsMTUuNDksVVNELG1vbnRobHksMjAyNC0wNy0xNSxzdHJlYW1pbmcsTmV0ZmxpeCxuZXRmbGl4LTEyMwpgYGAKCiMjIyMgSlNPTgoKYGBganNvbgpbCiAgewogICAgIm5hbWUiOiAiQWRvYmUgQ3JlYXRpdmUgQ2xvdWQiLAogICAgImFtb3VudCI6IDU5Ljk5LAogICAgImN1cnJlbmN5IjogIlVTRCIsCiAgICAiYmlsbGluZ0N5Y2xlIjogIm1vbnRobHkiLAogICAgIm5leHRCaWxsaW5nRGF0ZSI6ICIyMDI0LTA3LTAxIiwKICAgICJjYXRlZ29yeSI6ICJwcm9kdWN0aXZpdHkiLAogICAgInByb3ZpZGVyIjogIkFkb2JlIiwKICAgICJleHRlcm5hbElkIjogImFkb2JlLWNjLTEyMyIKICB9Cl0KYGBgCgojIyMgUmVxdWlyZWQgZmllbGRzCgp8IEZpZWxkICAgICAgICAgICAgfCBSZXF1aXJlZCB8IE5vdGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IGBuYW1lYCAgICAgICAgICAgfCB5ZXMgICAgICB8IFN1YnNjcmlwdGlvbiBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBhbW91bnRgICAgICAgICAgfCB5ZXMgICAgICB8IFBvc2l0aXZlIG51bWJlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBjdXJyZW5jeWAgICAgICAgIHwgeWVzICAgICAgfCBJU08gNDIxNyBjb2RlIChlLmcuIGBVU0RgLCBgWEVUYCkgICAgICAgICAgICAgICAgICAgICAgfAp8IGBiaWxsaW5nQ3ljbGVgICAgfCB5ZXMgICAgICB8IGBtb250aGx5YCwgYHF1YXJ0ZXJseWAsIGB5ZWFybHlgLCBgd2Vla2x5YCAgICAgICAgICAgfAp8IGBuZXh0QmlsbGluZ0RhdGVgIHwgeWVzICAgICAgfCBJU08gODYwMSBkYXRlIChgWVlZWS1NTS1ERGApICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBjYXRlZ29yeWAgICAgICAgfCBubyAgICAgICB8IEZyZWUtdGV4dCBjYXRlZ29yeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBwcm92aWRlcmAgICAgICAgIHwgbm8gICAgICAgfCBQcm92aWRlciBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGV4dGVybmFsSWRgICAgICB8IG5vICAgICAgIHwgVXNlZCBmb3IgZHVwbGljYXRlIGRldGVjdGlvbiAgICAgICAgICAgICAgICAgICAgICAgIHwKCiMjIyBEdXBsaWNhdGUgZGV0ZWN0aW9uCgpBIHJvdyBpcyBjb25zaWRlcmVkIGEgZHVwbGljYXRlIHdoZW4gaXQgbWF0Y2hlcyBhbiBleGlzdGluZyBzdWJzY3JpcHRpb24gb24gYW55IG9mOgoKLSB0aGUgc2FtZSBgZXh0ZXJuYWxJZGAsIG9yCi0gdGhlIHNhbWUgbm9ybWFsaXplZCBgbmFtZWAgKyBgYW1vdW50YCArIGBjdXJyZW5jeWAgKyBgbmV4dEJpbGxpbmdEYXRlYC4KCkJ5IGRlZmF1bHQgZHVwbGljYXRlcyBhcmUgcmVwb3J0ZWQgYXMgZXJyb3JzIGFuZCB0aGUgcm93IGlzIG5vdCBpbXBvcnRlZC4gUGFzcyBgLS1za2lwLWR1cGxpY2F0ZXNgIHRvIHNpbGVudGx5IHNraXAgdGhlbSBpbnN0ZWFkLgoKIyMjIEVycm9yIHJlcG9ydGluZwoKRXZlcnkgcm93IGlzIHZhbGlkYXRlZCBpbmRlcGVuZGVudGx5LiBSb3dzIHRoYXQgZmFpbCB2YWxpZGF0aW9uIGFyZSByZXBvcnRlZCB3aXRoIHRoZSByb3cgbnVtYmVyIGFuZCBhIGxpc3Qgb2YgZXJyb3JzLCBhbmQgdGhlIHJlbWFpbmluZyByb3dzIGFyZSBzdGlsbCBwcm9jZXNzZWQuIFRoZSBjb21tYW5kIGV4aXRzIHdpdGggYSBub24temVybyBjb2RlIGlmIGFueSByb3cgZmFpbGVkLgoKIyMgQ0xJIGFuZCBTREtzCgpgYGBiYXNoCm5wbSBydW4gY2xpOmhlbHAgICAgICAgICAgICAgICMgU2hvdyBDTEkgY29tbWFuZHMKbnBtIHJ1biBjbGk6bG9naW4gICAgICAgICAgICAgIyBBdXRoZW50aWNhdGUKbnBtIHJ1biBjbGk6c3VicyAgICAgICAgICAgICAgIyBMaXN0IHN1YnNjcmlwdGlvbnMKbnBtIHJ1biBjbGk6c3VicyBpbXBvcnQgICAgICAjIEJ1bGsgaW1wb3J0IHN1YnNjcmlwdGlvbnMgZnJvbSBDU1YvSlNPTgpgYGAKCkNsaWVudCBTR0tzIGZvciBKYXZhU2NyaXB0LCBQeXRob24sIGFuZCBHbyBsaXZlIGluIGBzZGtzL2AgYW5kIGNhbiBiZSByZWdlbmVyYXRlZCBmcm9tIHRoZSBvcGVuIEFQSSBzcGVjLgo=

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages